package com.zmc.coupon.application;

import com.zmc.common.domain.es.EsSkuEntity;
import com.zmc.common.domain.query.coupon.CouponEsFeignQuery;
import com.zmc.common.domain.query.coupon.CouponFeignQuery;
import com.zmc.common.domain.vo.coupon.CouponReduceVo;
import com.zmc.common.domain.vo.coupon.CouponUpdateVo;
import com.zmc.common.utils.PageUtils;
import com.zmc.common.utils.R;
import com.zmc.coupon.infrastructure.bean.query.CouponGoodQuery;
import com.zmc.coupon.infrastructure.bean.vo.CouponReceiveVo;

import java.util.List;

/**
 * @Author：zmc
 * @Date：2024/12/6 12:11
 */
public interface CouponApplicationService {
    R getCouponDetail(CouponFeignQuery query);

    boolean receiveCoupon(CouponReceiveVo vo);

    void removeById(Long couponId);

    void reduceCoupon(CouponReduceVo vo);

    void updateCouponHistory(CouponUpdateVo vo);

    void returnCoupon(String orderSn);

    PageUtils getGoodList(CouponEsFeignQuery query);
}
